搭建属于自己的SlapOS云平台(一) 安装 SlapOS Master

SlapOS是一种分散的云计算技术,使用Buildout在异构环境中自动部署和配置应用程序。SlapOS支持IaaS,PaaS和SaaS应用程序。

SlapOS Master用于管理SlapOS云平台,提供软件管理,服务实例管理,使用记帐和计费模块等功能,通过SlapOS能很方便地创建想要的服务。关于SlapOS的更多信息可阅览SlapOS的官网

安装过程

安装SlapOS Master过程类似ERP5安装(ERP5安装过程可以参考这里),不同的地方是Buildout配置文件和创建实例的参数。确保在操作以下步骤之前完成SlapOS Node的安装(SlapOS Node的安装可参考这里)。

配置SlapOS

在终端输入以下命令:

1
2
3
4
5
6
[root@vm ~]# slapos configure local \
--interface-name eth0 \
--partition-number 16 \
--ipv4-local-network 10.0.0.0/24 \
--daemon-listen-ip 127.0.0.1 \
--daemon-listen-port 50000

interface-name: Computer Partition使用的网卡, 请根据自己实际的网卡填写, 该网卡需要有ipv6地址。
partition-number: SlapOS创建的Computer Partition数量,对于ERP5需要10个左右,这里我们配置16个。
ipv4-local-network: Computer Partition使用的网络。
daemon-listen-ip: slapos-proxy绑定的地址。
daemon-listen-port: slapos-proxy绑定的端口。

完成后输入以下命令格式化Computer Partition:

1
[root@vm ~]# slapos node format --now

输出如下:

1
2
3
4
[root@vm ~]# slapos node format --now
2018-10-19 14:18:11 slapos[1464] INFO Updating computer
2018-10-19 14:18:32 slapos[1464] INFO Posting information to 'http://127.0.0.1:50000'
2018-10-19 14:18:32 slapos[1464] INFO slapos successfully prepared the computer.

安装SlapOS

获取SlapOS buildout配置文件到本地目录*/opt/buildout*

1
[root@vm ~]# mkdir -p /opt/buildout && cd /opt/buildout
1
[root@vm ~]# git clone https://github.com/SlapOS/slapos.git

构建和安装ERP5软件

1
[root@vm ~]# slapos supply /opt/buildout/slapos/software/slapos-master/software.cfg local_computer

通过以下命令可以查看buildout日志:

1
[root@vm ~]# tail -f /opt/slapos/log/slapos-node-software.log

输入以下命令:

1
[root@vm ~]# slapos node software

输出内容如下,则说明软件构建完成:

1
2
3
[root@vm opt]# slapos node software
2018-10-19 14:35:14 slapos[7190] INFO Processing software releases...
2018-10-19 14:35:14 slapos[7190] INFO Finished software releases.

创建SlapOS Master实例

创建证书颁发机构文件夹

输入以下命令,在*/etc/*目录下创建文件夹slapos-ssl文件夹:

1
[root@vm ~]# mkdir -pv /etc/slapos-ssl

修改文件夹用户权限:

1
2
[root@vm ~]# chmod 770 -R /etc/slapos-ssl 
[root@vm ~]# chown -R slapsoft:slapsoft /etc/slapos-ssl

创建SlapOS Master实例参数配置脚本

输入以下命令创建脚本

1
2
[root@vm ~]# touch slapos-master-config.py
[root@vm ~]# chmod +x slapos-master-config.py

修改脚本内容为以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/opt/slapos/bin/py
import json
import slapos.slap.slap

slapos_master_url = 'http://127.0.0.1:50000/'

slap = slapos.slap.slap()
slap.initializeConnection(slapos_master_url)

software_url = '/opt/buildout/slapos/software/slapos-master/software.cfg'

computer_id = 'local_computer'

parameter_dict = {
"zope-partition-dict": {
"activities-node": {
"family": "activities",
"thread-amount": 2,
"instance-count": 1,
"timerserver-interval": 1,
"port-base": 2200,
},
"distribution-node": {
"family": "distribution",
"thread-amount": 1,
"instance-count": 1,
"port-base": 2210,
"timerserver-interval": 1,
},
"web-node": {
"family": "web",
"thread-amount": 4,
"instance-count": 1,
"port-base": 2230,
},
"service-slapos": {
"family": "service",
"thread-amount": 2,
"instance-count": 1,
"port-base": 2240,
"ssl-authentication": True,
"backend-path": "/%(site-id)s/portal_slap",
},
},
}

ca_path = '/etc/slapos-ssl'
parameter_dict["shared-certificate-authority-path"] = ca_path

partition = slap.registerOpenOrder().request(
software_url,
"slapos_master",
software_type='default',
partition_parameter_kw={ '_': json.dumps(parameter_dict, sort_keys=True, indent=2), }
)

print "SlapOS Master Instance: {0}".format(partition.getConnectionParameterDict())

执行脚本创建SlapOS Master实例:

1
[root@vm ~]# ./slapos-master-config.py

等待SlapOS Master实例Buildout完成,可通过以下命令查看Buildout日志:

1
[root@vm ~]# tail -f /opt/slapos/log/slapos-node-instance.log

等待10-15分钟后重新执行脚本如果输出内容如下表示实例Buildout完成:

1
2
3
4
5
2018-10-19 16:47:39 slapos[13925] INFO Instance requested.
State is : started.
2018-10-19 16:47:39 slapos[13925] INFO Connection parameters of instance are:
2018-10-19 16:47:39 slapos[13925] INFO {'_': '{"hosts-dict": {"erp5-cloudooo": "10.0.0.221", "erp5-smtp": "127.0.0.2", "erp5-catalog-0": "10.0.0.218", "erp5-memcached-volatile": "10.0.0.215", "erp5-memcached-persistent": "10.0.0.214"}, "site-id": "erp5", "monitor-setup-url": "", "family-default-v6": "https://[xxxx:xxx::xxxx]:2151", "deadlock-debugger-password": "yzhmrcqk", "inituser-login": "zope", "inituser-password": "uslxwikz", "monitor-base-url": "", "mariadb-test-database-list": ["mysql://testuser_0:[email protected]:2099/erp5_test_0"], "mariadb-database-list": ["mysql://user:[email protected]:2099/erp5"], "memcached-volatile-url": "memcached://10.0.0.215:2013/", "memcached-persistent-url": "memcached://10.0.0.214:2003/", "caucase-http-url": "http://[xxxx:xxx::xxxx]:8890", "cloudooo-url": "http://10.0.0.221:2020/", "family-default": "https://10.0.0.211:2151"}'}
2018-10-19 16:47:39 slapos[13925] INFO You can rerun the command to get up-to-date information.

修改证书颁发机构文件夹用户权限

执行以下命令修改权限:

1
2
3
[root@vm ~]# cd /etc/slapos-ssl 
[root@vm ~]# chmod -R 770 cacert.pem crl requests certs crlnumber index.txt newcerts private serial
[root@vm ~]# chown -R slapsoft:slapsoft cacert.pem crl requests certs crlnumber index.txt newcerts private serial

重启SlapOS Master实例

执行以下命令重启SlapOS Master实例:

1
[root@vm ~]# slapos node restart all

至此SlapOS Master安装完成

搭建属于自己的SlapOS云平台(一) 安装 SlapOS Master

https://www.junle.org/搭建属于自己的SlapOS云平台(一) 安装-SlapOS-Master/

作者

Junle

发布于

2018-01-15

更新于

2024-03-22

许可协议

评论